home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / debconf / frontend < prev    next >
Text File  |  2009-10-02  |  2KB  |  105 lines

  1. #!/usr/bin/perl -w
  2. # This file was preprocessed, do not edit!
  3.  
  4.  
  5. use strict;
  6. use Debconf::Db;
  7. use Debconf::Template;
  8. use Debconf::AutoSelect qw(:all);
  9. use Debconf::Log qw(:all);
  10.  
  11. Debconf::Db->load;
  12.  
  13. debug developer => "frontend started";
  14.  
  15. my $frontend=make_frontend();
  16.  
  17. shift @ARGV if $ARGV[0] eq '--';
  18.  
  19. my $package;
  20. if ($ENV{DEBCONF_PACKAGE}) {
  21.     $package=$ENV{DEBCONF_PACKAGE};
  22. }
  23. elsif ($ARGV[0]=~m!^.*/(.*?)\.(?:postinst|postrm|prerm)$!) {
  24.     $package=$1;
  25. }
  26. elsif (-e "/var/lib/dpkg/tmp.ci/control") {
  27.     open (CONTROL, "< /var/lib/dpkg/tmp.ci/control")
  28.         || die "Debconf: unable to open control file: $!";
  29.     while (<CONTROL>) {
  30.         if (/^Package: (.*)/) {
  31.             $package=$1;
  32.             last;
  33.         }
  34.     }
  35.     close CONTROL;
  36.     if (! exists $ENV{PERL_DL_NONLAZY} || ! $ENV{PERL_DL_NONLAZY}) {
  37.         warn "PERL_DL_NONLAZY is not set, if debconf is running from a preinst script, this is not safe";
  38.     }
  39. }
  40. else {
  41.     $package='';
  42.  
  43.     debug developer => 'Trying to find a templates file..';
  44.     sub trytemplate {
  45.         my $fn=shift;
  46.         debug developer => "Trying $fn";
  47.         if (-e $fn) {
  48.             debug developer => "I guess it is $fn";
  49.             Debconf::Template->load($fn, $package);
  50.             return 1;
  51.         }
  52.         else {
  53.             return;
  54.         }
  55.     }
  56.  
  57.     unless (trytemplate("$ARGV[0].templates")) {
  58.         unless ($ARGV[0]=~m/(.*)config$/ && trytemplate("${1}templates")) {
  59.             unless ($ARGV[0]=~m!^(?:.*/)?(.*)! && trytemplate("/usr/share/debconf/templates/${1}.templates")) {
  60.                 debug developer => "Couldn't find a templates file."
  61.             }
  62.         }
  63.     }
  64. }
  65. debug developer => "frontend running, package name is $package";
  66. $frontend->default_title($package) if length $package;
  67. $frontend->info(undef);
  68.  
  69. if ($ARGV[0] =~/^(.*[.\/])(?:postinst|preinst)$/) {
  70.     my $base=$1;
  71.  
  72.     my $templates=$base."templates";
  73.     Debconf::Template->load($templates, $package)
  74.         if -e $templates;
  75.  
  76.     my $config=$base."config";
  77.     if (-e $config) {
  78.         my $version=$ARGV[2];
  79.         if (! defined($version)) {
  80.             $version='';
  81.         }
  82.         my $confmodule=make_confmodule($config,
  83.             "configure", $version);
  84.  
  85.         $confmodule->owner($package);
  86.  
  87.         1 while ($confmodule->communicate);
  88.         
  89.         exit $confmodule->exitcode if $confmodule->exitcode > 0;
  90.     }
  91. }
  92.  
  93. my $confmodule=make_confmodule(@ARGV);
  94.  
  95. $confmodule->owner($package);
  96.  
  97. 1 while ($confmodule->communicate);
  98.  
  99. $frontend->shutdown;
  100.  
  101. Debconf::Db->save;
  102.  
  103. exit $confmodule->exitcode;
  104.  
  105.